/**
 * @author zj
 * @date 2024/08/22
 * @constructor
 */

import {App} from 'vue';
import FxRender from './render/index.ts';
import FxForm from './form/index.ts';
import FxTable from './table/index.ts';

import fxResolve from './resolve/resolve.ts';
import fxConfigure from './resolve/configure.ts';

import {Options, Configure} from './resolve/configure.ts';

export {renderChildren, renderItem} from './render/render.ts';

export * from './resolve/handler.ts';

export * from './resolve/types.ts';

export * from './resolve/utils.ts';

export * from './resolve/values.ts';

export * from './resolve/consts.ts';

export type {Options, Configure};

export {FxRender, FxForm, FxTable};

export {fxConfigure, fxResolve};

const RenderView = {
  // 注册组件
  install(app: App, options: Options) {
    app.component(FxRender.name as string, FxRender);
    app.component(FxForm.name as string, FxForm);
    app.component(FxTable.name as string, FxTable);
    fxConfigure.setOptions(options);
  }
};

export {NaiveConfigure} from './defaults/naive.ts';

export default RenderView;

